/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package logica;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 *
 * @author francisco tiapa
 */
public class ListaObjetoXML {
    
     private List<ObjetoXML> laLista;
     private Connection conexion;
     protected final Log logger = LogFactory.getLog(getClass());

    public ListaObjetoXML() {
       laLista = new ArrayList<ObjetoXML>();
    }

    public boolean AgregarObjeto(ObjetoXML elUsuario)
    {
     return laLista.add(elUsuario);
    }
    
    public void MostrarLista()
    {
       Iterator<ObjetoXML> elIterator = laLista.iterator();

     while(elIterator.hasNext()==true)
      {
       ObjetoXML elObjeto=elIterator.next();
       logger.info("Nombre: "+elObjeto.getNombre()+" Fecha_inicio:"+elObjeto.getFecha_inicio()+
                       " Fecha_fin "+elObjeto.getFecha_fin()+"\n");
      }
    }

//Esta funcion borra primero los registros de la bases de datos y luego inserta lo leido en el xml en la bd de eventos
    public void insertarObjetoBd () throws SQLException
    {
        try {
        ConexionBD c = new ConexionBD();
        conexion = c.conectarBD();
        String query3 = "delete from eventos";
        PreparedStatement ps3 = conexion.prepareStatement(query3);
        int rs3 = ps3.executeUpdate();
        Iterator<ObjetoXML> elIterator = laLista.iterator();

     while(elIterator.hasNext()==true)
      {
       ObjetoXML elObjeto=elIterator.next();
       String query = "insert into eventos values(?,?,?,?,?,?,?,?,?,?)";
       PreparedStatement ps = conexion.prepareStatement(query);
       ps.setInt(1,elObjeto.getId());
       ps.setString(2,elObjeto.getNombre());
       ps.setString(3,elObjeto.getFecha_inicio());
       ps.setString(4,elObjeto.getFecha_fin());
       ps.setString(5, elObjeto.getHora_inicio());
       ps.setString(6, elObjeto.getHora_fin());
       ps.setInt(7,elObjeto.getId_categoria());
       ps.setString(10, elObjeto.getDescripcion());
       ps.setDate(9, null);
       ps.setString(8, null);
       int rs = ps.executeUpdate();
      // conexion.close();

      }

        }
        catch (SQLException ex)
        {
            Logger.getLogger(LeerXmlInterno.class.getName()).log(Level.SEVERE, null, ex);
        }
        conexion.close();
}
     
    public List<ObjetoXML> getLaLista() {
        return laLista;
    }

    public void setLaLista(List<ObjetoXML> laLista) {
        this.laLista = laLista;
    }
    
    
    
}
